home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 145 / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan).7z / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan) (Track 1).bin / tools / sharp / sxwork1.lzh / INCLUDE / CONSOLE.H next >
Text File  |  1994-02-20  |  5KB  |  327 lines

  1. /*
  2.  * console.h X68k SX_SYSTEM ver 2.01 Copyright 1994 SHARP/First Class Technology
  3.  */
  4. #ifndef __CONSOLE_H
  5. #define __CONSOLE_H
  6.  
  7. #ifndef __SXDEF2_H
  8. #include <sxdef2.h>
  9. #endif
  10.  
  11. #ifdef FORWORD
  12. #define __PROTO_TYPE
  13. #endif
  14. #ifdef __STDC__
  15. #define __PROTO_TYPE
  16. #endif
  17.  
  18. typedef enum KeyCode    KeyCode;
  19.  
  20. typedef struct Mouse    Mouse;
  21. typedef struct MsCsr    MsCsr;
  22. typedef struct AryQue    AryQue;
  23. typedef struct KBoard    KBoard;
  24. typedef struct Key    Key;
  25. /*
  26.  *    マウスマン (Mouse Man)
  27.  */
  28. struct Mouse {
  29.     Bitmap *bmap;
  30.     short multi;
  31.     char rvsSwitch;
  32.     char rvsForBack;
  33.     char rvsLeftRight;
  34.     unsigned long nowPosition;
  35.     struct MsSwitch {
  36.         char leftSw;
  37.         char rightSw;
  38.     } nowSwitch;
  39.     unsigned long thePosition;
  40.     struct MsSwitch theSwitch;
  41.     short deltaX;
  42.     short deltaY;
  43.     short restX;
  44.     short restY;
  45.     unsigned long oldPosition;
  46.     struct MsSwitch oldSwitch;
  47.     long cache;
  48.     MsCsr **csrHdl;
  49.     short bits;
  50.     short csrLvl;
  51.     short drawing;
  52.     char cached;
  53. };
  54.  
  55. struct MsCsr {
  56.     Point hotSpot;
  57.     BitImg mask[16];
  58.     BitImg pattern[4][16];
  59. };
  60. /*
  61.  *    キーボードマン (Keyboard Man)
  62.  */
  63. #define KB_HALT        1
  64. #define KB_RESETON    (1 << 1)
  65. #define KB_OLDON    (1 << 2)
  66. #define KB_LEDON    (1 << 3)
  67. #define KB_CLICKON    (1 << 4)
  68. #define KB_REPEATON    (1 << 5)
  69. #define KB_ASSIGNON    (1 << 6)
  70.  
  71. enum KeyCode {
  72.     K_ESC        =  0x01,
  73.     K_1,
  74.     K_2,
  75.     K_3,
  76.     K_4,
  77.     K_5,
  78.     K_6,
  79.     K_7,
  80.     K_8,
  81.     K_9,
  82.     K_0,
  83.     K_MINUS,
  84.     K_CARET,
  85.     K_YEN,
  86.     K_BS,
  87.     K_TAB,        /* 0x10 */
  88.     K_Q,
  89.     K_W,
  90.     K_E,
  91.     K_R,
  92.     K_T,
  93.     K_Y,
  94.     K_U,
  95.     K_I,
  96.     K_O,
  97.     K_P,
  98.     K_AT,
  99.     K_LBRACK,
  100.     K_CR,
  101.     K_A,
  102.     K_S,
  103.     K_D,        /* 0x20 */
  104.     K_F,
  105.     K_G,
  106.     K_H,
  107.     K_J,
  108.     K_K,
  109.     K_L,
  110.     K_SEMI,
  111.     K_COLON,
  112.     K_RBRACK,
  113.     K_Z,
  114.     K_X,
  115.     K_C,
  116.     K_V,
  117.     K_B,
  118.     K_N,
  119.     K_M,        /* 0x30 */
  120.     K_COMMA,
  121.     K_PERIOD,
  122.     K_SLASH,
  123.     K__,
  124.     K_SPACE,
  125.     K_HOME,
  126.     K_DEL,
  127.     K_RUP,
  128.     K_RDOWN,
  129.     K_UNDO,
  130.     K_LEFT,
  131.     K_UP,
  132.     K_RIGHT,
  133.     K_DOWN,
  134.     K_CLR,
  135.     KT_SLASH,    /* 0x40 */
  136.     KT_ASTERI,
  137.     KT_MINUS,
  138.     KT_7,
  139.     KT_8,
  140.     KT_9,
  141.     KT_PLUS,
  142.     KT_4,
  143.     KT_5,
  144.     KT_6,
  145.     KT_EQUAL,
  146.     KT_1,
  147.     KT_2,
  148.     KT_3,
  149.     K_ENTER,
  150.     KT_0,
  151.     KT_COMMA,    /* 0x50 */
  152.     KT_PERIOD,
  153.     K_KIGO,
  154.     K_TOROKU,
  155.     K_HELP,
  156.     K_XF1,
  157.     K_XF2,
  158.     K_XF3,
  159.     K_XF4,
  160.     K_XF5,
  161.     K_KANA,
  162.     K_ROMAJI,
  163.     K_CODEIN,
  164.     K_CAPS,
  165.     K_INS,
  166.     K_HIRA,
  167.     K_ZEN,        /* 0x60 */
  168.     K_BREAK,
  169.     K_COPY,
  170.     K_F1,
  171.     K_F2,
  172.     K_F3,
  173.     K_F4,
  174.     K_F5,
  175.     K_F6,
  176.     K_F7,
  177.     K_F8,
  178.     K_F9,
  179.     K_F10,
  180.     K_SHIFT        =  0x70,
  181.     K_CTRL,
  182.     K_OPT1,
  183.     K_OPT2
  184. };
  185.  
  186. struct AryQue {
  187.     short size;
  188.     short count;
  189.     void *start;
  190.     void *read;
  191.     void *write;
  192. };
  193.  
  194. struct KBoard {
  195.     AryQue keyBuf;
  196.     unsigned long shiftKey;
  197.     short data;
  198.     char flag[16];
  199.     char pad[10];
  200.     char map[128];
  201.     char assign[128];
  202. };
  203. /*
  204.  *    キーマン (Key Man)
  205.  */
  206. struct Key {
  207.     AryQue msgQue;
  208.     unsigned long shiftKey;
  209.     char *map;
  210.     KBoard *kbr;
  211.     void *ascJob;
  212.     void *cacheA;
  213.     void *cacheK;
  214.     void *cacheM;
  215. };
  216.  
  217. #ifdef __PROTO_TYPE
  218. /*
  219.  *    エクセプションマン (Exception Man)
  220.  */
  221. int EXEnVDISPST(void (*)(void));
  222. int EXDeVDISPST(void (*)(void));
  223. /*
  224.  *    マウスマン (Mouse Man)
  225.  */
  226. void MSInitCsr(void);
  227. void MSShowCsr(void);
  228. void MSHideCsr(void);
  229. void MSSetCsr(MsCsr **);
  230. void MSObscureCsr(void);
  231. void MSShieldCsr(Rect *, LPoint);
  232. Mouse *MSGetCurMsr(void);
  233. long MSMultiGet(void);
  234. long MSMultiSet(long);
  235. /*
  236.  *    アニメーションマン (Animation Man)
  237.  */
  238. int EXAnimStart(int, int, MsCsr ***);
  239. int EXAnimEnd(void);
  240. BOOLEAN EXAnimTest(void);
  241. /*
  242.  *    キーボードマン (Keyboard Man)
  243.  */
  244. char *KBMapGet(KBoard *);
  245. long KBShiftGet(KBoard *);
  246. long KBShiftSet(KBoard *, long);
  247. int KBSimulate(KBoard *, long);
  248. int KBScan(KBoard *);
  249. int KBGet(KBoard *);
  250. void KBEmpty(KBoard *);
  251. KBoard *KBInit(int, int);
  252. void KBTini(KBoard *);
  253. KBoard *KBCurKbrGet(void);
  254. BOOLEAN KBOldOnGet(KBoard *);
  255. BOOLEAN KBOldOnSet(KBoard *, BOOLEAN);
  256. int KBFlagGet(KBoard *);
  257. int KBFlagSet(KBoard *, int);
  258. /*
  259.  *    キーマン (Key Man)
  260.  */
  261. void KMEmpty(Key *);
  262. int KMPost(Key *, int, int);
  263. int (*KMAscJobSet(Key *, int (*)(void)))(void);
  264. int KMSimulate(Key *, int);
  265. void KMTask(Key *);
  266. Key *KMInit(long);
  267. void KMTini(Key *);
  268. Key *KMCurKmrGet(void);
  269.  
  270. #undef __PROTO_TYPE
  271. #else
  272. /*
  273.  *    エクセプションマン (Exception Man)
  274.  */
  275. int EXEnVDISPST();
  276. int EXDeVDISPST();
  277. /*
  278.  *    マウスマン (Mouse Man)
  279.  */
  280. void MSInitCsr();
  281. void MSShowCsr();
  282. void MSHideCsr();
  283. void MSSetCsr();
  284. void MSObscureCsr();
  285. void MSShieldCsr();
  286. Mouse *MSGetCurMsr();
  287. long MSMultiGet();
  288. long MSMultiSet();
  289. /*
  290.  *    アニメーションマン (Animation Man)
  291.  */
  292. int EXAnimStart();
  293. int EXAnimEnd();
  294. BOOLEAN EXAnimTest();
  295. /*
  296.  *    キーボードマン (Keyboard Man)
  297.  */
  298. char *KBMapGet();
  299. long KBShiftGet();
  300. long KBShiftSet();
  301. int KBSimulate();
  302. int KBScan();
  303. int KBGet();
  304. void KBEmpty();
  305. KBoard *KBInit();
  306. void KBTini();
  307. KBoard *KBCurKbrGet();
  308. int KBOldOnGet();
  309. int KBOldOnSet();
  310. int KBFlagGet();
  311. int KBFlagSet();
  312. /*
  313.  *    キーマン (Key Man)
  314.  */
  315. void KMEmpty();
  316. int KMPost();
  317. int (*KMAscJobSet())();
  318. int KMSimulate();
  319. void KMTask();
  320. Key *KMInit();
  321. void KMTini();
  322. Key *KMCurKmrGet();
  323.  
  324. #endif __PROTO_TYPE
  325.  
  326. #endif __CONSOLE_H
  327.